#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
    File Name:      ToString
    Author:         'daze'
    date:           2018/11/7
"""


class ToString:

    def get_self_key_list(self):
        return [key for key in self.__dict__.keys() if key != '_sa_instance_state' and key != '_state']

    def get_self_dict(self):  # 使用字典推导式
        return {key: getattr(self, key) for key in self.get_self_key_list() if getattr(self, key) is not None}

    def get_description(self):
        # 利用str的format格式化字符串
        # 利用生成器推导式去获取key和self中key对应的值的集合    [ 不过打印出来的是按照字母顺序，而不是按照类中的声明顺序，暂时还没有办法，，]
        return ",".join(self.get_self_dict())
        # 重写__str__定义对象的打印内容

    def __str__(self):
        return "{}->({})".format(self.__class__.__name__, self.get_description())
